package com.fx.ruankao.mapper;

import com.fx.ruankao.entity.QuestionBank;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 题目Mapper接口
 */
@Mapper
public interface QuestionBankMapper {
    /**
     * 新增题目
     * @param questionBank 题目信息
     * @return 影响行数
     */
    int insert(QuestionBank questionBank);

    /**
     * 根据ID删除题目
     * @param id 题目ID
     * @return 影响行数
     */
    int deleteById(Long id);

    /**
     * 更新题目信息
     * @param questionBank 题目信息
     * @return 影响行数
     */
    int update(QuestionBank questionBank);

    /**
     * 根据ID查询题目
     * @param id 题目ID
     * @return 题目信息
     */
    QuestionBank selectById(Long id);

    /**
     * 查询题目列表
     * @param questionBank 查询条件
     * @return 题目列表
     */
    List<QuestionBank> selectList(QuestionBank questionBank);

    /**
     * 查询题目总数
     * @param questionBank 查询条件
     * @return 题目总数
     */
    int selectCount(QuestionBank questionBank);

    /**
     * 批量插入题目
     * @param questions 题目列表
     * @return 影响行数
     */
    int batchInsert(@Param("questions") List<QuestionBank> questions);

    /**
     * 随机获取题目
     * @param type 题目类型
     * @param difficulty 难度
     * @param chapter 章节
     * @param knowledgePoint 知识点
     * @param limit 数量
     * @return 题目列表
     */
    List<QuestionBank> selectRandomQuestions(@Param("type") Integer type, 
                                             @Param("difficulty") Integer difficulty, 
                                             @Param("chapter") String chapter, 
                                             @Param("knowledgePoint") String knowledgePoint,
                                             @Param("limit") Integer limit);
}